int WINAPI Open_Device();
int WINAPI Close_Serial_Port(short int PortName);
int WINAPI Led_Option();
int WINAPI Beep_Option();

int WINAPI Read_EM_Card(char *Data);
int WINAPI Build_EM_Card(char *Data);
int WINAPI Reset_EM_Card();
int WINAPI Build_EM_Card_E5551(char *Data);
int WINAPI Reset_EM_Card_E5551();

int WINAPI Read_Hid_Card(unsigned char *Data);

int WINAPI E5557_Read_Free_N(char Baud_Rate, short int Length, char *Result);
int WINAPI E5557_Write_Free_N(char Baud_Rate, short int Page_Num, short int Block_Num, short int LockBit, char *Data);
int WINAPI E5557_Write_Pwd_N(char Baud_Rate, short int Page_Num, short int Block_Num, short int LockBit, char *Password, char *Data);
int WINAPI E5557_Aor_N(char Baud_Rate, char *Password);
int WINAPI E5557_Direct_Read_N(char Baud_Rate, short int Page_Num, short int Block_Num, short int AorBit, char *Password, char *Result);
int WINAPI E5557_Select_Page_N(short int Page_Num);
int WINAPI E5557_Reset_Card_N();

int WINAPI EM4305_Read_Card(unsigned char Address, unsigned char *Data);
int WINAPI EM4305_Write_Card(unsigned char Address, unsigned char *Data);
int WINAPI EM4305_Verify_Card(unsigned char *Password);
int WINAPI EM4305_Protect_Card(unsigned char *Protect);
int WINAPI EM4305_Stop_Card(void);

int WINAPI E5550_Read(short int Length, short int AorBit, char *Password, char *Result);
int WINAPI E5550_Write_Free(short int Address, short int Lockbit, char *Data);
int WINAPI E5550_Write_Pwd(short int Address, short int LockBit, char *Password, char *Data);
int WINAPI E5550_Aor(char *Password);
int WINAPI E5550_Stop();

